package com.atguigu.juc;

import java.security.Permission;
import java.sql.SQLOutput;
import java.util.HashSet;
import java.util.Set;

/**
 * @author ：MJS
 * @date ：Created in 2021/4/26  19:03
 * @description：==和equals
 * 1.==  既可以比较基本数据类型亦可以比较引用数据类型
 * 1.1   基本类型  比较具体值
 * 1.2   引用类型   比较内存地址
 * 2.equals
 * 是否被重写过       只关心对象类型
 * 2.1  保持出场默认设置，他就是==，对于引用类型就是比较内存地址
 * 2.2  如果被重写过，具体问题具体分析
 *
 *
 */
public class TestEquals {
    public static void main(String[] args) {
        String s1=new String("abc");
        String s2=new String("abc");
        System.out.println(s1==s2);
        System.out.println(s1.equals(s2));
        Set<String>set01=new HashSet<>();
        set01.add(s1);
        set01.add(s2);
        System.out.println(s1.hashCode()+"\t"+s2.hashCode());
        System.out.println(set01.size());

        System.out.println("=====================");
        Person p1=new Person("abc");
        Person p2=new Person("abc");
        System.out.println(p1==p2);
        System.out.println(p1.equals(p2));
        Set<Person>set02=new HashSet<>();
        set02.add(p1);
        set02.add(p2);
        System.out.println(p1.hashCode()+"\t"+p2.hashCode());
        System.out.println(set02.size());

    }

}
